#ifndef GLOBAL_H
#define GLOBAL_H

#define MID_CHECK_PROCESS "中查"
#define SEND_OUT_PROCESS "外发"
#define INTERRUPT_PROCESS "中断"
#define SECONDPACKUP_PROCESS	"二次合筐"

#define NORMAL_PROCESS_ATTRI		0		//正常生产
#define OUT_LINE_PROCESS_ATTRI		1		//线外生产
#define SKIP_PROCESS_ATTRI			2		//跳过生产

#define ZJ_VALUE QString("组件")
#define HD_VALUE QString("后道")
#define QF_VALUE QString("前幅")
#define HF_VALUE QString("后幅")

//工位状态：0 离线 1 空闲 2 仅在产 3 仅待产 4 忙碌 5  停收 6 在途（有一筐正流向这个工位）
extern int OFF_LINE_P_S;
extern int FREE_P_S;
extern int IN_PRO_ONLY_P_S;
extern int WAITING_FOR_ONLY_PRO_P_S;
extern int BUSY_P_S;
extern int STOP_RECV_P_S;
extern int IN_THE_WAY_P_S;

extern int gTotalPositionNum;
extern int gRuleMinStdtimeInLib;
extern int gRuleMinBoxInLib;
extern int gRuleAddPosSTD;
extern int gMinBoxInLibAddPosition;
extern int gBalanceLevel;

//生产状态：0 新料、1 回库、 2 在库、3 送产、4 待产、5 在产、6 暂停、7 重配、8 送查、9 外发出库、10 中断出库、11 成部出库、12 成品出库、13 强制出库、14 等待出库、15 等待中查。
extern int NEW_FEED_B_S;//新料 status_info存放进料时间，界面可直接显示
extern int BACK_LIB_B_S;//回库 status_info存放从哪个工位回库（int转成string进行保存），界面显示“来自n号工位”
extern int IN_LIB_B_S;//在库 status_info存放库位号（int转成string进行保存），界面显示“库位：n”
extern int SEND_PRO_B_S;//送产 status_info 目标工位（int转成string进行保存），界面显示“送往n号工位”
extern int WAITING_FOR_PRO_B_S;//待产 status_info 所在工位
extern int IN_PRO_B_S;//在产 status_info 所在工位，但需要显示已经生产时间，界面需要获取当前时间，然后与筐的start_time作差值secsto接口获取秒数；
extern int PAUSE_B_S;//暂停 status_info为暂停前状态，（int转成string进行保存），需要将status_info转成int后再去显示相应的状态，显示内容为“上一个状态：待产”
extern int REDISTRIBUTE_B_S;//此状态更改为标志，与返工标志类似，status_info为空，实际是禁用这个状态，改为在当前筐信息中标记重配，筐状态是回库
extern int SEND_CHECK_B_S;//送查 status_info为空
extern int SEND_OUT_OUT_B_S;//外发出库 status_info为外发交期，界面可直接显示
extern int INTERRUPT_OUT_B_S;//中断出库 status_info为空
extern int PART_FINISHED_OUT_B_S;//成部出库 status_info为空
extern int FINISHED_OUT_B_S;//成品出库 status_info为空
extern int FORCE_OUT_B_S;//强制出库 status_info为空
extern int WAITING_FOR_OUT_LIB;//等待出库 status_info为INTERRUPT_OUT_B_S/PART_FINISHED_OUT_B_S/FINISHED_OUT_B_S/FORCE_OUT_B_S-取筐位
extern int WAITING_FOR_MID_CHECK;//等待中查 status_info为空
extern int WAITING_FOR_INTO_LIB;//为了避免与等待齐套出库的要求相冲突，不再使用这个状态，遇到库满的时候，清除扫描缓存的筐号，下次扫描仍不停的尝试
//等待入库 status_info为FEED_PORT（进料口）或BACK_LIB_PORT（回库口）或BACK_LIB_PORT2（回库口2）
extern int OUT_LINE_B_S;//线外生产
extern int SECONDPACKUP_OUT_B_S;//二次合筐出库 status_info为空
extern int PART_FINISHED_WAIT_INLIB_B_S;//部件完成，在库等待齐套出库，status_info为存放的库位号，状态变化为回库-等待齐套-成部出库
extern int OUT_LIB_FOR_STH_B_S;//临时出库，出库后可以直接放在进料口扫描，筐工序状态不变，，状态变化为在库-临时出库-在库
extern int OUT_LIB_IN_THE_WHY_B_S;//出库在途，已经判断是要出库的了,信息是当前库位或目标库位
extern int BACK_IN_LIB_B_S;		//回库完成，信息是当前库位
extern int PAUSE_IN_PRO_B_S;	//暂停在产，筐已在工位生产后没有放回库
extern int gRuleAllInLibOnlyHaveDone;
extern int gRuleWaitForBestPair;


extern int gRuleReCheckCanSendMinStdInLib;
extern int gRulePositionContinueOneProcessSecond;
extern int gRuleHourTargetWindow;
extern int gFeedCyclePercent;
extern int gRuleStartRateRefix;

class global
{
public:

    global();
};

#endif // GLOBAL_H
